#! /bin/sh
# PCP QA Test No. 049
# Big archive exerciser and temporal index
#
# Copyright (c) 1995-2002 Silicon Graphics, Inc.  All Rights Reserved.
#

seq=`basename $0`
echo "QA output created by $seq"

# get standard filters
. ./common.product
. ./common.filter
. ./common.check

trap "rm -f $tmp.*; exit" 0 1 2 3 15

# real QA test starts here
for arch in archives/ok-mv-bigbin
do
    echo | tee -a $seq_full
    echo "=== $arch ===" | tee -a $seq_full
    pmdumplog -t $arch >>$seq_full
    src/xarch -a $arch -Dlog 2>&1 \
    | tee -a $seq_full \
    | sed \
	-e 's/posn=[0-9]*/posn=OFFSET/' \
	-e 's/delta=0\.0*/delta=0/' \
	-e 's/__pmLogChkLabel/chkLabel/g' \
	-e '/__pmLogRead/d' \
	-e '/LogLoadMeta/d' \
	-e '/^__pmLogFindOpen:/d' \
	-e '/__pmLogOpen: inspect file/d' \
	-e 's/[0-2][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9][0-9]*[0-9]/TIME/g' \
	-e 's/TIME (t=[0-9][0-9.]*)/TIME/g' \
	-e 's/pid=.*host=.*/pid=PID host=HOSTNAME/' \
    | $PCP_AWK_PROG '
BEGIN				{ state = 0 }
state == 0 && /^__pmFopen/	{ sub(/\.meta"/, ".SUFF", $0)
				  sub(/\.index"/, ".SUFF", $0)
				  sub(/\.0"/, ".SUFF", $0)
				}
$1 == "chkLabel:"		{ state = 1 }
$1 == "chkLabel:" && /vol=0/	{ if (fd1 == "") fd1 = $2
				  if (fd1 == $2) $2 = "fd=<n1>"
				}
$1 == "chkLabel:" && /vol=-2/	{ if (fd2 == "") fd2 = $2
				  if (fd2 == $2) $2 = "fd=<n2>"
				}
$1 == "chkLabel:" && /vol=-1/	{ if (fd3 == "") fd3 = $2
				  if (fd3 == $2) $2 = "fd=<n3>"
				}
$1 == "__pmLogRead:"		{ if (fd4 == "") fd4 = $2
				  if (fd4 == $2) $2 = "fd=<n4>"
				}
$1 == "chkLabel:" && /vol=[1-9]/	{ if (fd5 == "") fd5 = $2
				  if (fd5 == $2) $2 = "fd=<n5>"
				}
				{ print }' \
    | $PCP_AWK_PROG -v sortfile=$tmp.sort '
/pmLogOpen/ { print > sortfile; open=1; next }
open==1 && $1 !~ /pmLogOpen/ { system("sort " sortfile); open=0 }
/^Pass /			{ pass = $2 }
pass == "4:" && /^Found 1000 /	{ print; skip = 1 }
pass == "4:" && /^Found 750 /	{ print; skip = 1 }
pass == "5:" && /^Found 750 /	{ print; skip = 1 }
pass == "5:" && /^Found 500 /	{ print; skip = 1 }
skip == 1 && /__pmLogSetTime/	{ print "__pmLogSetTime ..."; next }
skip == 1 && /__pmLogFetch/	{ skip = 2; next }
skip == 2 && /__pmLogFetch/	{ next }
skip == 1			{ next }
skip == 2			{ skip = 0 }
				{ print }'
done

exit 0
